package model;

public class FactoriaSistemaPrepago {

        private static ISistemaPrepago crearSistemaPrepago(){        	
                return new SistemaMillennium();
        }

        public static ISistemaPrepago crearSistemaPrepago(String nombre){

	    /* NO MODIFICAR PARA PRACTICA 2 */
            ISistemaPrepago sistema = crearSistemaPrepago();
            if (nombre.equals("")) {
                    return sistema;
            }
            if (nombre.equals("TarjetaA")) {
					try{
                    // Inicializar tarjeta/estaciones
							sistema.crearTarjeta("1",50,"Juan Gomez","social");
							sistema.crearEstacion("1","CENTRO","PAJARITAS");
                    return sistema;
					}catch(OperacionInvalidaException e)
					{
						e.printStackTrace();
						return null;
					}
            }
            if (nombre.equals("TarjetaB")) {
                try{
                    // Inicializar tarjeta/estaciones
							sistema.crearTarjeta("2",10,"Pedro Ramirez","general");
							sistema.crearEstacion("1","Lado","Monte Alto");
							sistema.crearTarjeta("1",6,"Jose Garcia","social");
							sistema.crearTarjeta("3",28,"Antonio Tomas", "general");
							sistema.crearTarjeta("4",10,"Jose Tomas", "universitaria");
							sistema.crearTarjeta("5",55,"Pedro Jimenez","social");
                    return sistema;
					}catch(OperacionInvalidaException e)
					{
						e.printStackTrace();
						return null;
					}
            }
            if (nombre.equals("TarjetaC")) {
                try{
                    // Inicializar tarjeta/estaciones
							sistema.crearTarjeta("1",25,"Raul Martinez","universitaria");
							sistema.crearEstacion("1","CorteIngles","Cuatro Caminos");
							sistema.crearTarjeta("2",20,"Fernando Jose","general");
							sistema.crearEstacion("2","Riazor", "EstadoFutbol");
							sistema.crearTarjeta("3",6,"Raul Gonzalez","general");
                    return sistema;
					}catch(OperacionInvalidaException e)
					{
						e.printStackTrace();
						return null;
					}
            }
            return null;
        }
}

